#ifndef __CFORM_LINEAR_H
#define __CFORM_LINEAR_H
#include "cform.h"

typedef layer linear_layer;

#ifdef GPU
int forward_linear_layer_gpu(linear_layer l, network net);
int backward_linear_layer_gpu(linear_layer l, netwrok net);
#endif // GPU

int forward_linear_layer(linear_layer l, network net);
int backward_linear_layer(linear_layer l, network net);
int update_linear_layer(linear_layer l, update_args a);

linear_layer make_linear_layer(int batch, int inputs, int outputs, ACTIVATION activation, int batch_normalize, int adam);

void backward_bias(float *bias_updates, float *delta, int batch, int n, int size);

#endif // __CFORM_LINEAR_H